package cn.lcsjsxy.yxc.collections_framework.Collection;

import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Collection;

/**
 * jdk5.0新增了foreach循环，用于遍历集合、数组
 */
public class ForTest {
    @Test
    public void test(){
        Collection coll=new ArrayList();
        coll.add(123);
        coll.add(456);
        coll.add(new String("Tom"));
        coll.add(false);
        coll.add(new Person("Jerry",20));

        //for(集合中元素的类型 局部变量 ：集合对象)
        //内部仍然调用了迭代器
        for (Object obj:coll){
            System.out.println(obj);
        }
    }

    @Test
    public void test1(){
        int[] arr=new int[]{1,2,3,4,5,6};
        //for(数组元素的类型 局部变量：数组对象)
        for (int i:arr){
            System.out.println(i);
        }
    }

    //练习题
    @Test
    public void test3(){
        String[] arr=new String[]{"MM","MM","MM"};
        //方式一：普通for
//        for (int i=0;i<arr.length;i++){
//            arr[i]="GG"; //拿本身的数组元素做修改
//        }

        //方式二：foreach循环
        for (String s:arr){
            s="GG";  //把元素取出来赋值给s，s的值改了，所以arr中的元素不变
        }

        for (int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}
